/*
  封装axios：仿人家npm里面axios的功能
  axios.get() 查
  axios.post() 增
  axios.put() 改
  axios.delete() 删
*/

//ES6 面向对象 类
class Axios{
  get(url,data,formType){
    return this.request('get',url,data,formType);
  }
  post(url,data,formType){
    return this.request('post',url,data,formType);
  }
  put(url,data,formType){
    return this.request('put',url,data,formType);
  }
  delete(url,data,formType){
    return this.request('delete',url,data,formType);
  }
  request(method,url,data,formType) {//formType 传1或0
    let contentType = formType ? "application/x-www-form-urlencoded" : 'application/json';
    return new Promise((resolve, reject) => {
      wx.request({
        url: url,//请求路径：必填参数
        method:method,//如果不写，就是默认get请求
        data:data,//不是必填
        header : {//联调：FE:frontend BE:backend
          "Content-Type" : contentType //如果是json数据，就不用写
        },
        success(res) {
          // console.log('成功获取数据：',res);
          resolve(res);
        },
        fail(err) {
          // console.log('失败的原因：',err);
          reject(err);
        }
      })
    }) 
  }
  
}

// let axios = new Axios();
// axios.get('url',{id:2}).then(res => {
//   console.log(res);
// })

//导出这个axios实例对象
module.exports = new Axios();
